import java.util.*;

public class Escenario {

	private static Escenario instanciaUnica = new Escenario();
	
	private ArrayList<Avion> avionesEnJuego = new ArrayList<Avion>();
	private ArrayList<Avion> avionDelJugador = new ArrayList<Avion>();
	private ArrayList<Municion> disparosEnemigosEnJuego = new ArrayList<Municion>();
	private ArrayList<Municion> disparosDelJugadorEnJuego = new ArrayList<Municion>();
	private ArrayList<Item> itemsEnJuego = new ArrayList<Item>();
	private LimitesDelEscenario limites = new LimitesDelEscenario();
	private boolean juegoTerminado;
	
	private Escenario() {
		boolean juegoTerminado = false;
	}
	
	public static Escenario getInstancia() {
		return instanciaUnica;
	}
	
	public void agregarAvionAlJuego(Avion unAvion) {
		avionesEnJuego.add(unAvion); 
	}
		
	public void agregarAvionDelJugador(Avion unAvion) { 
		avionDelJugador.add(unAvion);
	}

	public void agregarDisparoDelJugador(Municion unaMunicion) { 
		disparosDelJugadorEnJuego.add(unaMunicion);
	}
	
	public void agregarDisparoEnemigoAlJuego(Municion unaMunicion) {
		disparosEnemigosEnJuego.add(unaMunicion);
	}
	
	public void agregarItemAlJuego(Item unItem) { 
		itemsEnJuego.add(unItem);
	}
	
	public void setJuegoTerminado() { 
		Avion avion;
		if ((avionDelJugador.size()) == 1){
			avion = avionDelJugador.get(1);
			if (avion.estaDestruido){
				juegoTerminado = true;
			}
		}		
	}
		
	public ArrayList<Avion> getAvionDelJugador() { 
		return avionDelJugador;
	}
	
	public ArrayList<Avion> getAvionesEnJuego() {
		return avionesEnJuego;
	}

	public ArrayList<Municion> getDisparosDelJugadorEnJuego() {
		return disparosDelJugadorEnJuego;
	}

	public ArrayList<Municion> getDisparosEnemigosEnJuego() {
		return disparosEnemigosEnJuego;
	}

	public ArrayList<Item> getItemsEnJuego (){
		return itemsEnJuego;
	}

	public LimitesDelEscenario getLimites() {
		return limites;
	}

	public void eliminarElementosDestruidos() {
		int i = 0;
		Avion avion;
		Municion disparo;
		Item item ;
		while (i < avionesEnJuego.size()){
			avion = avionesEnJuego.get(i);
			if (avion.estaDestruido){
				avionesEnJuego.remove(i);
			}
			else i++;
		}
		i = 0;
		while (i < disparosDelJugadorEnJuego.size()){
			disparo = disparosDelJugadorEnJuego.get(i);
			if (disparo.estaDestruido){
				disparosDelJugadorEnJuego.remove(i);
			}
			else i++;	
		}
		i = 0;
		while (i < disparosEnemigosEnJuego.size()){
			disparo = disparosEnemigosEnJuego.get(i);
			if (disparo.estaDestruido){
				disparosEnemigosEnJuego.remove(i);
			}
			else i++;
		}
		i = 0;
		while (i < itemsEnJuego.size()){
			item = itemsEnJuego.get(i);
			if (item.estaDestruido){
				itemsEnJuego.remove(i);
			}
			else i++;
		}	
	}
}
